Over a period of time, use of software defined network (SDN) has increased. The reason behind the increase is the convenience with which such network can be managed. One example SDN 100 is shown in FIG. 1 (prior art). The SDN 100 includes a network management system (NMS) 102 for managing policies and other things in the SDN 100. The SDN 100 also includes a controller pool 104 including a plurality of controllers, such as a controller 106A, a controller 106B and a controller 106C. Each controller is connected to one or more routers, for example, the controller 106A is connected to a router 108A via a connection 110A and to a router 108B via a connection 110C. The controller 106B is connected to the router 108A via a connection 110B, to the router 108B via a connection 110D, and to a router 108C via a connection 110E. The controller 106C is connected to the router 108C via a connection 110F.
Load balancing of the connections between routers and the controllers is a problem, because all controllers are present in a single pool and it causes several issues related to scalability. For example, distribution of the controller pool 104 across the globe introduces different loss or latency characteristics based on the geolocation and distances between the routers and the controller. Load on any controller of the controller pool 104 is difficult to manage as router components are free to choose a controller to connect with from the controller pool 104. In addition, redundancy across failure domains cannot be guaranteed. Over-provisioning of hardware and software capabilities of the controller is another issue and has to be part of the SDN 100 design as scales becomes difficult to predict especially during failures. In addition, it is an operational nightmare to isolate and detect faults in a huge controller pool 104. There is a lack of control regarding which bandwidth channel to use to run the controller pool 104. Further, it leads to inability to guarantee a prevention of the SDN 100 downtime during maintenance windows.
Therefore, there is a need for a method and a system for managing control connections with a distributed control plane.